package com.baomidou.springmvc.service.system;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.baomidou.springmvc.model.system.User;
import com.baomidou.springmvc.model.system.UserView;

/**
 * User 表数据服务层接口
 */
public interface IUserService extends IService<User> {

    /**
     * 测试增删改查
     */
    void crud();

    /**
     * 测试增删改查异常
     */
    void crudRollback();

    /**
     * 测试内置单表分页查询
     *
     * @param page  翻页对象，可以作为 xml 参数直接使用，传递参数 Page 即自动分页
     * @param state 状态
     * @return List
     */
    Page<User> buildinSelectUserPage(Page<User> page, String state);

    /**
     * 测试自定义语句分页查询
     *
     * @param page  翻页对象，可以作为 xml 参数直接使用，传递参数 Page 即自动分页
     * @param state 状态
     * @return List
     */
    Page<User> selectUserPage(Page<User> page, String state);

    /**
     * 测试自定义语句分页查询并返回自定义普通 JavaBean
     *
     * @param page  翻页对象，可以作为 xml 参数直接使用，传递参数 Page 即自动分页
     * @param state 状态
     * @return List
     */
    Page<UserView> selectUserView(Page<UserView> page, String state);
}